Nuestro objetivo en esta sección es hacer un programa que calcule un número combinatorio. Para hacerlo se necesita un número y un número y aplicar la fórmula: . En esta fórmula se utiliza el factorial 3 veces, con 3 números distintos. Ahí radica un poco el interés en utilizar funciones.
Empezemos por un programa que calcula el factorial de un solo número:
#include <iostream> using namespace std; int main() { int n, n_fact = 1; cin >> n; while (n > 0) { n_fact = n_fact * n; n = n - 1; } cout << n_fact << endl; }
La forma de calcular El Factorial es ir multiplicando números sucesivos y acumularlos en una variable que habremos inicializado a 1 previamente. Al final, esa variable, en este caso n_fact tendrá el resultado.
Este cálculo tenemos que hacerlo 3 veces si queremos calcular el número combinatorio. Primero hay que leer los valores de n y k, llamaremos m a la resta n - k y hay que calcular el factorial de las 3 variables. El programa principal empieza así, entonces:
int n, k, m; int n_fact = 1, k_fact = 1, m_fact = 1; cout << "Entra n i k: "; cin >> n >> k; m = n - k;
Luego, para obtener los 3 factoriales una forma es poner 3 bucles así:
while (n > 0) { n_fact = n_fact * n; n = n - 1; } while (k > 0) { k_fact = k_fact * k; k = k - 1; } while (m > 0) { m_fact = m_fact * m; m = m - 1; }
Para acabar el programa calculamos la fórmula que nos piden:
cout << n_fact / (k_fact * m_fact) << endl;
[Este documento continúa en el tema siguiente: Binomial 2.]
En preparación